package ucc.request;

import java.util.ArrayList;

import persistance.dal.CaisseDuJourPersister;
import persistance.dal.ClasseDeProduitPersister;
import persistance.dal.CompteUtilisateurPersister;
import persistance.dal.ContenancePersister;
import persistance.dal.FonctionPersister;
import persistance.dal.OperationCaissePersister;
import persistance.dal.ProduitPersister;
import persistance.dal.TypeDeProduitPersister;
import ucc.objects.CaisseDuJourDTO;
import ucc.objects.ClasseDeProduitDTO;
import ucc.objects.CompteUtilisateurDTO;
import ucc.objects.ContenanceDTO;
import ucc.objects.FonctionDTO;
import ucc.objects.OperationCaisseDTO;
import ucc.objects.ProduitDTO;
import ucc.objects.TypeDeProduitDTO;

public class UccOperImpl implements UccOper {

	public void ajouterUnCompteUtilisateur(
			CompteUtilisateurDTO nouveauCompteUtilisateur) {
		CompteUtilisateurPersister.INSTANCE.insert(nouveauCompteUtilisateur);
	}

	public void majUnCompteUtilisateur(CompteUtilisateurDTO compteUtilisateur) {
		CompteUtilisateurPersister.INSTANCE.update(compteUtilisateur);
	}

	public void ajouterUneFonction(FonctionDTO nouvelleFonction) {
		FonctionPersister.INSTANCE.insert(nouvelleFonction);
	}

	public void majUneFonction(FonctionDTO fonction) {
		FonctionPersister.INSTANCE.update(fonction);
	}

	public void ajouterUnTypeDeProduit(TypeDeProduitDTO nouveauTypeDeProduit) {
		TypeDeProduitPersister.INSTANCE.insert(nouveauTypeDeProduit);
	}

	public void majUnTypeDeProduit(TypeDeProduitDTO typeDeProduit) {
		TypeDeProduitPersister.INSTANCE.update(typeDeProduit);
	}

	public void ajouterUneClasseDeProduit(
			ClasseDeProduitDTO nouvelleClasseDeProduit) {
		ClasseDeProduitPersister.INSTANCE.insert(nouvelleClasseDeProduit);
	}

	public void majUneClasseDeProduit(ClasseDeProduitDTO classeDeProduit) {
		ClasseDeProduitPersister.INSTANCE.update(classeDeProduit);
	}

	public void ajouterUneContenance(ContenanceDTO nouvelleContenance) {
		ContenancePersister.INSTANCE.insert(nouvelleContenance);
	}

	public void majUneContenance(ContenanceDTO contenance) {
		ContenancePersister.INSTANCE.update(contenance);
	}

	public void ajouterUnProduit(ProduitDTO nouveauProduit) {
		ProduitPersister.INSTANCE.insert(nouveauProduit);
	}

	public void majUnProduit(ProduitDTO produit) {
		ProduitPersister.INSTANCE.update(produit);
	}

	public void ajouterUnCompte(ArrayList<OperationCaisseDTO> listeOperation) {
		for (OperationCaisseDTO nouvelleOperationCaisse : listeOperation) {
			OperationCaissePersister.INSTANCE.insert(nouvelleOperationCaisse);
		}
	}

	public void assignationCaisseDuJour(CaisseDuJourDTO caisseDuJour) {
		CaisseDuJourPersister.INSTANCE.insert(caisseDuJour);
	}

	public void majCaisseDuJour(CaisseDuJourDTO caisseDuJour) {
		CaisseDuJourPersister.INSTANCE.update(caisseDuJour);
	}
}
